package cj.web.portal.controllers;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import cj.utils.Constants;
import cj.utils.DateUtils;
import cj.web.admin.constants.CategoryEnum;
import cj.web.portal.dao.LineDAO;
import cj.web.portal.dao.PaperDAO;
import net.paoding.rose.web.annotation.Param;
import net.paoding.rose.web.annotation.Path;
import net.paoding.rose.web.annotation.rest.Get;
import net.paoding.rose.web.var.Model;
import net.sf.json.JSONObject;

/**
 * 报刊媒体二级页面
 * 
 * @author hejia
 *
 *         2015年12月29日
 */
@Path("paper")
public class PaperController {
	@Autowired
	PaperDAO paperDao;
	@Autowired
	private LineDAO lineDAO;
	
	//报刊媒体
	@Get("bkmt")
	public String showBKMT(Model model) {
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "paper/bkmt.vm";
	}
	
	//武汉宣
	@Get("whx")
	public String showWHX(Model model) {
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "paper/whx.vm";
	}

	@Get("cjrb")
	public String queryCjrb(Model model) {
		//最新动态类型
		model.add("zxdtCategory", CategoryEnum.CJRB_ZXDT.getValue());
		// Top1
		List<Map> top1 = formMap(CategoryEnum.CJRB_ZXDT.getValue(),0,1);
		model.add("top1", top1);
		// 最新动态
		List<Map> news = formMap(CategoryEnum.CJRB_ZXDT.getValue(),1,3);
		model.add("news", news);
		// 品牌活动
		List<Map> activity = formMap(CategoryEnum.CJRB_PPHD.getValue(),0,5);
		model.add("activity", activity);
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "paper/cjrbpaper.vm";
	}

	@Get("whwb")
	public String queryWhwb(Model model) {
		//最新动态类型
		model.add("zxdtCategory", CategoryEnum.WHWB_ZXDT.getValue());
		// Top1
		List<Map> top1 = formMap(CategoryEnum.WHWB_ZXDT.getValue(),0,1);
		model.add("top1", top1);
		// 最新动态
		List<Map> news = formMap(CategoryEnum.WHWB_ZXDT.getValue(),1,3);
		model.add("news", news);
		// 品牌活动
		List<Map> activity = formMap(CategoryEnum.WHWB_PPHD.getValue(),0,5);
		model.add("activity", activity);
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "paper/whwbpaper.vm";
	}

	@Get("whcb")
	public String queryWhcb(Model model) {
		//最新动态类型
		model.add("zxdtCategory", CategoryEnum.WHCB_ZXDT.getValue());
		// Top1
		List<Map> top1 = formMap(CategoryEnum.WHCB_ZXDT.getValue(),0,1);
		model.add("top1", top1);
		// 最新动态
		List<Map> news = formMap(CategoryEnum.WHCB_ZXDT.getValue(),1,3);
		model.add("news", news);
		// 品牌活动
		List<Map> activity = formMap(CategoryEnum.WHCB_PPHD.getValue(),0,5);
		model.add("activity", activity);
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "paper/whcbpaper.vm";
	}
	
	/**
	 * 子报最新动态和品牌活动列表页
	 * @param model
	 * @param zxdtCategory
	 * @param start
	 * @param length
	 * @return
	 */
	@Get("more")
	public String detail(Model model, @Param("category")int category){		
		model.add("category",category);//子报最新动态和品牌活动类型
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		return "paper/list.vm";
	}
	
	@Get("lst")
	public String lst(Model model, @Param("category")int category, @Param("start") int start,
			@Param("length") int length){
		JSONObject jo = new JSONObject();
		jo.put("returnFlag", Constants.returnObj.returnFlag_true);
		
		List<Map> list = formMap(category,start,length);
		
		jo.put("list",list);
		
		return "@" + jo.toString();
	}
	
	@Get("detail")
	public String detail(Model model, @Param("id")String id){
		List<Map> lst = paperDao.queryById(id);	
		
		if (lst !=null && lst.size()>0) {
			model.add("id", lst.get(0).get("id"));
			model.add("title", lst.get(0).get("title"));
			model.add("abstractInfor", lst.get(0).get("abstractInfor"));
			model.add("carouselImage", lst.get(0).get("carouselImage"));
			model.add("content", lst.get(0).get("content"));
			model.add("author", lst.get(0).get("author"));
			model.add("source", lst.get(0).get("source"));
			model.add("releaseAT", DateUtils.getDateTime2Str(DateUtils.parse(lst.get(0).get("releaseAT").toString()),
					DateUtils.DATE_FULL_STR));
		}
		model.add("jtpphdls", jtpphd(String.valueOf(CategoryEnum.CJTT_PPHD.getValue())));//集团品牌活动列表
		model.add("jtpcjtts", jtpphd(String.valueOf(CategoryEnum.CJTT_CJTT.getValue())));//集团长江头条列表
		return "paper/detail.vm";
	}

	private List<Map> formMap(int categery,int start,int length) {
		List<Map> arrNews = paperDao.query(categery, start, length);

		List<Map> resNews = new ArrayList<Map>();
		for (Map news : arrNews) {
			Map result = new HashMap();
			result.put("id", news.get("id"));
			result.put("title", news.get("title"));
			result.put("abstractInfor", news.get("abstractInfor"));
			result.put("carouselImage", news.get("carouselImage"));
			result.put("content", news.get("content"));
			result.put("author", news.get("author"));
			result.put("source", news.get("source"));
			result.put("releaseAT", news.get("releaseAT"));

			resNews.add(result);
		}

		return resNews;
	}

	/**
	 * 集团down
	 * @param category
	 * @return
	 */
	private List<Map> jtpphd(String category)
	{
		//集团品牌活动
		List<Map> ppls = lineDAO.query(category, 0, 5);
		List<Map> pphdls = new ArrayList<Map>();
		for(Map rep :ppls)
		{
			Map l_rep = new HashMap();
			l_rep.put("id", rep.get("id"));//ID
			l_rep.put("title", rep.get("title"));//标题
			l_rep.put("abstractInfor", rep.get("abstractInfor"));//简介
			l_rep.put("carouselImage", rep.get("carouselImage")+".thumb.jpg");//缩率图
			pphdls.add(l_rep);
		}
		return pphdls;
	}
}
